package com.rybbaby.tss.core.annotation.validator;

import com.rybbaby.tss.core.verifier.BetweenVerifier;

import java.lang.annotation.*;

/**
 * @description 数值型范围验证器注解
 * 
 * @author 谢进伟
 * 
 * @createDate 2016年3月30日 上午10:17:14
 */
@Target({ElementType.FIELD , ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface BetweenValidator{
	
	/**
	 * 是否包含左极限
	 * 
	 * @return
	 */
	public boolean includeMin() default true;
	
	/**
	 * 是否包含右极限
	 * 
	 * @return
	 */
	public boolean includeMax() default true;
	
	/**
	 * 最小极限值(默认包含,若不包含最小极限值,可将 includeMin 设置为false)
	 * 
	 * @return
	 */
	public double min() default Double.MIN_VALUE;
	
	/**
	 * 最大极限值(默认包含,若不包含最大极限值,可将 includeMax 设置为false)
	 * 
	 * @return
	 */
	public double max() default Double.MAX_VALUE;
	
	/**
	 * 是否允许为空值
	 */
	public boolean nullable() default true;
	
	/**
	 * 验证器
	 * 
	 * @return
	 */
	public Class<? extends BetweenVerifier> verifier() default BetweenVerifier.class;
}
